One of the most common uses of computer systems is to display the content of documents. Contemporary computer systems and programs provide great flexibility in viewing a document, including jumping to hyperlinked locations in the document, zooming in and out of the content, allowing a user to jump to a desired page by indicating a desired page number, scroll and use keyboard keys to navigate the document and perform many other document viewing options.
However, when displaying the pages of a document, there are different ways in which pages may be laid out relative to one another, and different ways in which content and/or pages may be handled. For example, there are various ways to align pages when showing multiple pages at the same time, (e.g. left, center or right horizontally aligned, and top, center or right vertically aligned). Moreover, there are fixed content pages, in which the content fits onto fixed page dimensions, and reflowable content pages, in which the content fills whatever page space is currently available e.g., text wraps differently if the available page width expands or contracts.
Moreover, while in many documents the pages are all the same size, in other documents, there may be a mix of differently-sized pages, including in fixed-page-only documents, e.g. landscape and portrait pages. Reflowable content may be mixed with fixed page content in a given document, independent of whether the fixed pages are all the same size or not.
Still further, the user may change a layout at any time, such as to increase or decrease the number of pages being shown at once. The user may also have one actively-focused page among others being displayed, such as a page with which the user was interacting, e.g., by having marked text as selected for copying. If the user changes the number of pages, the user will expect to still see the actively focused page in the subsequent view having the modified number of pages.
In sum, there are many variations that are possible when laying out the pages of content of a document for display. What is needed is a mechanism that handles layout in a consistent and logical way, so that users receive a satisfying viewing experience regardless of viewing differently-sized pages, viewing fixed or reflowable (flow) content e.g., HTML pages wherein when a browser window resizes, the content reflows to fit the available space, and regardless of which page is actively focused.